The use of various devices which facilitate communications and/or which themselves utilize communications has become nearly ubiquitous. For example, personal computers (PCs), personal digital assistants (PDAs), electronic book readers, cellular telephones, personal media players, etc. widely in use today often utilize network connectivity, such as to provide user communication links, upload/download of content, operations and control communication, etc. Accordingly, various network infrastructure has been deployed to provide networks, such as local area networks (LANs), metropolitan area networks (MANs), wide area networks (WANs), and the Internet, facilitating the foregoing communications.
A number of different resource sharing techniques have been implemented to enable different types of traffic competing for shared links in the foregoing networks to receive a portion of available capacity while attempting to achieve a required quality of service (e.g., as may be measured by parameters such as throughput, delay, jitter, and packet loss). Such resource sharing techniques typically implement algorithms, such as scheduling algorithms or traffic shaping algorithms, in network devices, such as switches and routers, of the network infrastructure. Such scheduling algorithms operate to select which packets among a group of competing network flows will be chosen to be transmitted and in which order. The aforementioned traffic shaping algorithms operate to determine what portion of the available shared link capacity will be assigned to a particular flow or collection of data packets at any given time.
A scheduling algorithm implementing strict priority scheduling, for example, allows network devices to give priority to specific types of traffic over others when deciding how to allocate available shared link capacity. Such a scheduling algorithm may be beneficial when certain traffic (e.g., voice traffic) that is sensitive to network performance (e.g., delay and jitter) is being serviced and thus needs to be prioritized above other traffic types. However, such strict priority scheduling can result in the high priority traffic consuming all or most of the available shared link capacity during periods of heavy demand, thereby starving (i.e., failing to serve or under serving) traffic that is deemed to be of lower priority. Fair scheduling may alternatively be implemented, whereby a share of the link bandwidth is assigned to the various types of traffic without applying a strict priority to the traffic flows. For example, a traffic shaping algorithm may be used in conjunction with a scheduling algorithm in an effort to ensure that bandwidth of an available shared link is distributed among competing flows in a way that allows all types of traffic receive at least some minimum share of the link capacity.
In implementing traffic shaping, network administrators define the minimum and peak bandwidth (i.e., a predetermined number of bits) or fixed allocation range (e.g., a predetermined minimum and peak bandwidth in number of bits) that can be consumed by the different traffic types such that all flows receive at least the minimum level of the shared link capacity. Such traffic shaping bandwidth allocations, although preventing starving lower priority traffic, limit the link usage efficiency. That is, the minimum bandwidth reserved for the different traffic types is not available for use by other flows, even if there is no demand for the reserved bandwidth by its corresponding traffic type at any given moment. This limitation of traffic shaping algorithms often results in less than 100% link utilization.
As can be appreciated from the foregoing, there are various resource sharing techniques that may be implemented, each of which presents associated benefits and challenges. When provisioning network devices to implement the foregoing resource sharing techniques, operators must typically choose the particular algorithms to be implemented and their associated parameters that dictate how the system will distribute available shared link capacity between competing traffic. These choices are static, usually established upon deployment or upon substantial network reconfiguration, and are based upon the fixed bandwidth of the wireline network links for which the techniques were designed. Accordingly, resource sharing techniques, such as scheduling and traffic shaping experience significant challenges if implemented in wireless applications where the link capacity changes over time.